package com.py.inbound.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 出库管理对象 wh_outbound
 *
 * @author ruoyi
 * @date 2024-12-19
 */
public class WhOutbound extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 出库Id
     */
    private Long outboundId;

    /**
     * 出库编码
     */
    @Excel(name = "出库编码")
    private String outboundCode;

    /**
     * 出库类型
     */
    @Excel(name = "出库类型")
    private String outboundType;

    /**
     * 出库状态
     */
    @Excel(name = "出库状态")
    private String outboundStatus;

    /**
     * 仓库编号
     */
    @Excel(name = "仓库编号")
    private String warehouseCode;

    /**
     * 出库日期
     */

    @Excel(name = "出库日期")
    private String outboundTime;

    /**
     * 关联单号
     */
    @Excel(name = "关联单号")
    private String relatedNumber;

    /**
     * 出库目标（收货人/供应商）
     */
    @Excel(name = "出库目标", readConverterExp = "收=货人/供应商")
    private String relatedTarget;

    /**
     * 收货人
     */
    @Excel(name = "收货人")
    private String consignee;

    /**
     * 联系方式
     */
    @Excel(name = "联系方式 ")
    private String phone;

    /**
     * 审核人
     */
    @Excel(name = "审核人")
    private String reviewer;

    /**
     * 审核理由
     */
    @Excel(name = "审核理由")
    private String reviewerReport;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviewerTime;

    /**
     * 出库数量
     */
    @Excel(name = "出库数量")
    private Integer reviewerNumber;

    public List<Date> getZdDateList() {
        return zdDateList;
    }

    public void setZdDateList(List<Date> zdDateList) {
        this.zdDateList = zdDateList;
    }

    private List<Date> zdDateList;

    public List<Date> getOutDateList() {
        return outDateList;
    }

    public void setOutDateList(List<Date> outDateList) {
        this.outDateList = outDateList;
    }

    /**
     * 出库金额
     */
    @Excel(name = "出库金额")
    private BigDecimal reviewerMoney;
    private List<Date> outDateList;


    private String warehouseName;
    private String locationName;

    private String productName;
    private String productModel;

    private String productTypeName;
    private BigDecimal outPrice;
    private BigDecimal outMoney;
    private Integer outNumber;

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public String getLocationName() {
        return locationName;
    }

    public void setLocationName(String locationName) {
        this.locationName = locationName;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductModel() {
        return productModel;
    }

    public void setProductModel(String productModel) {
        this.productModel = productModel;
    }

    public String getProductTypeName() {
        return productTypeName;
    }

    public void setProductTypeName(String productTypeName) {
        this.productTypeName = productTypeName;
    }

    public BigDecimal getOutPrice() {
        return outPrice;
    }

    public void setOutPrice(BigDecimal outPrice) {
        this.outPrice = outPrice;
    }

    public BigDecimal getOutMoney() {
        return outMoney;
    }

    public void setOutMoney(BigDecimal outMoney) {
        this.outMoney = outMoney;
    }

    public Integer getOutNumber() {
        return outNumber;
    }

    public void setOutNumber(Integer outNumber) {
        this.outNumber = outNumber;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    /**
     * 逻辑删除
     */
    @Excel(name = "逻辑删除")
    private String isDelete;

    public String getProductUnit() {
        return productUnit;
    }

    public void setProductUnit(String productUnit) {
        this.productUnit = productUnit;
    }

    private String productCode;
    private String productUnit;

    public Integer getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseId(Integer warehouseId) {
        this.warehouseId = warehouseId;
    }

    private Integer warehouseId;

    public void setOutboundId(Long outboundId) {
        this.outboundId = outboundId;
    }

    public Long getOutboundId() {
        return outboundId;
    }

    public void setOutboundCode(String outboundCode) {
        this.outboundCode = outboundCode;
    }

    public String getOutboundCode() {
        return outboundCode;
    }

    public void setOutboundType(String outboundType) {
        this.outboundType = outboundType;
    }

    public String getOutboundType() {
        return outboundType;
    }

    public void setOutboundStatus(String outboundStatus) {
        this.outboundStatus = outboundStatus;
    }

    public String getOutboundStatus() {
        return outboundStatus;
    }

    public void setWarehouseCode(String warehouseCode) {
        this.warehouseCode = warehouseCode;
    }

    public String getWarehouseCode() {
        return warehouseCode;
    }

    public void setOutboundTime(String outboundTime) {
        this.outboundTime = outboundTime;
    }

    public String getOutboundTime() {
        return outboundTime;
    }

    public void setRelatedNumber(String relatedNumber) {
        this.relatedNumber = relatedNumber;
    }

    public String getRelatedNumber() {
        return relatedNumber;
    }

    public void setRelatedTarget(String relatedTarget) {
        this.relatedTarget = relatedTarget;
    }

    public String getRelatedTarget() {
        return relatedTarget;
    }

    public void setConsignee(String consignee) {
        this.consignee = consignee;
    }

    public String getConsignee() {
        return consignee;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getPhone() {
        return phone;
    }

    public void setReviewer(String reviewer) {
        this.reviewer = reviewer;
    }

    public String getReviewer() {
        return reviewer;
    }

    public void setReviewerReport(String reviewerReport) {
        this.reviewerReport = reviewerReport;
    }

    public String getReviewerReport() {
        return reviewerReport;
    }

    public void setReviewerTime(Date reviewerTime) {
        this.reviewerTime = reviewerTime;
    }

    public Date getReviewerTime() {
        return reviewerTime;
    }

    public void setReviewerNumber(Integer reviewerNumber) {
        this.reviewerNumber = reviewerNumber;
    }

    public Integer getReviewerNumber() {
        return reviewerNumber;
    }

    public void setReviewerMoney(BigDecimal reviewerMoney) {
        this.reviewerMoney = reviewerMoney;
    }

    public BigDecimal getReviewerMoney() {
        return reviewerMoney;
    }

    public void setIsDelete(String isDelete) {
        this.isDelete = isDelete;
    }

    public String getIsDelete() {
        return isDelete;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("outboundId", getOutboundId())
                .append("outboundCode", getOutboundCode())
                .append("outboundType", getOutboundType())
                .append("outboundStatus", getOutboundStatus())
                .append("warehouseCode", getWarehouseCode())
                .append("outboundTime", getOutboundTime())
                .append("relatedNumber", getRelatedNumber())
                .append("relatedTarget", getRelatedTarget())
                .append("consignee", getConsignee())
                .append("phone", getPhone())
                .append("reviewer", getReviewer())
                .append("reviewerReport", getReviewerReport())
                .append("reviewerTime", getReviewerTime())
                .append("reviewerNumber", getReviewerNumber())
                .append("reviewerMoney", getReviewerMoney())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("isDelete", getIsDelete())
                .toString();
    }
}
